In the following discussion, certain articles and methods will be described for background and introductory purposes. Nothing contained herein is to be construed as an “admission” of the prior art. Applicant expressly reserves the right to demonstrate, where appropriate, that the articles and methods referenced herein do not constitute prior art under the applicable statutory provisions.
Geo-fencing applications executing on a mobile computer device are required to use whatever computational power it has at its disposal to determine the position of the mobile computer device within a common datum, e.g. such as for example a mobile phone. On that mobile computing device, one or more location-dependent applications could be running all of which use the considerable computing power of the device to determine whether that device is at a predefined location, crossed a geographically defined line or is external or internal to a predetermined geo-fenced area, or even approaching one of those lines or area. The applications may also need to report approach, entrance, and exit events of the device entering, being within or exiting a geo-fenced area and these calculations also use the computational power of the mobile computer device or in some cases a remote computer server/s.
Mechanisms of establishing the location of such a device commonly include one or more of, a non-exclusive list: cell tower (phone system) triangulation/trilateration; Wi-Fi triangulation/trilateration; Wi-Fi fingerprinting; visible light-based positioning; Infrared-based positioning; ultrasound-based positioning; applications of satellite-based navigation such as Global Positioning System (GPS); inertial navigation and radio-frequency-based positioning such as Zigbee, ultra-wide-band (UWB) and Low Energy Bluetooth (BLE) signal based trilateration.
As useful as the applications used by a mobile device can be, they can at times use a considerable amount of the memory and central processing power of the mobile computer device. Geo-fencing applications which use high numbers of memory data exchange and central data processing, increase the (typically) battery power used while establishing their location. Each of the location determination mechanisms has a different battery drain characteristic and accuracy of location determination, where generally the greater the accuracy, typically translating into more central processing unit cycles and data memory eschanges, and hence the greater the battery power usage (drain) and different applications using one or more of the mechanisms for establishing location at an appropriate time to suit the needs of the particular application.
In one example of a current geo-fence management arrangement, a very large number of pre-defined geo-fences can be stored in large memory capacity storage array for retrieval and supplied to the, lesser in number but still, a large number of mobile computer devices which have limited memory capacity. The manner in which this is currently achieved tries to ensure that only those geo-fence areas which are near to the current location of the mobile computer device are retrieved and sent to the mobile computer device so as to reduce the calculation load on the mobile device but this means that the remote computer server takes on the calculation load.
This apparently simple requirement however requires the server (or server array and associated memory arrays (both cache and hard drive)) to be able to first receive a location determination from a particular mobile computer device and perform calculations to identify which of the many millions of geo-fences that have been created for many millions of different applications (uses and mobile computer device applications) are within a predetermined distance of the location of that particular mobile computer device at that time. This requirement is then needed for each of potentially millions of mobile computer devices which are sending their location determinations to that same server (or server array) and drawing on that same store of those millions of geo-fences.
To accommodate the relatively small memory capacity of the mobile computer device, only the nearest 256 geo-fence areas are sent to the mobile computer device, which then takes over the distance calculation using its central processor and memory resources.
The time to transfer the 256 geo-fence areas and the data used is clearly much less than if more than 256 geo-fence areas were sent and the practical effect of transferring the processing load to the mobile is manageable within the data transfer and memory capacities of mobile computer devices at the time of filing of this specification.
The processing load of calculating whether any of the millions of mobile computer devices are close to or within one or more of the many millions of geo-fence areas is now off-loaded to the server (s) having access to those millions of geo-fence defining data sets, but, only to the extent that the server(s) is required to perform the 256 geo-fence area determination for each mobile computer device every time a mobile computer device provides a location determination.
The mobile computer device once in possession of the 256 nearest geo-fence areas, then performs calculations to determine for each location update (LU) it performs (GPS, etc.), being a calculated position of the mobile computer device, to determine where it is in relation to each of those 256 geo-fence areas.
As useful as the above arrangement is for current quantities of geo-fence areas and numbers of mobile computer devices needing to access the data associated with those areas, the approach described will not suffice when the quantities of geo-fence areas and numbers of mobiles increase, as they will, since the growth of this activity has been exponential in the past and relatively short time of the existence of this technology.
A highly resource-intensive component of this system is the calculation, in an ad-hoc manner, of the nearest 256 geo-fence areas, centred on the mobile devices' location, which is not cacheable by common techniques due to no two requests having precisely the same location (including from six to nine decimal places in latitude and longitude).
One simple approach to a solution to the above difficulties, is to use rounding (such as to the nearest whole number latitude and longitude of the mobile computer device). This, however, does not allow for the requirement for the computer server to manage the provision of a page with a predetermined manageable size and/or quantity of geo-fences.